package com.fowo.api.model.amazon.sales.statement;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 亚马逊销售统计表 导入导出辅助模型 */
@Getter
@Setter
public class AmazonSalesStatementExcelPo {

  @Size(max = 50, message = "亚马逊订单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "亚马逊订单号")
  private String amazonOrderId;

  @Size(max = 50, message = "下单日期长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "下单日期")
  private java.util.Date purchaseDate;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "订单最近更新时间")
  private java.util.Date lastUpdatedDate;

  @Size(max = 50, message = "订单的当前状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单的当前状态")
  private String orderStatus;

  @Size(max = 50, message = "订单的配送方式长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单的配送方式")
  private String fulfillmentChannel;

  @Size(max = 50, message = "下单渠道长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "下单渠道")
  private String salesChannel;

  @Size(max = 50, message = "CBA/WBA 订单下单的子渠道长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "CBA/WBA 订单下单的子渠道")
  private String orderChannel;

  @Size(max = 50, message = "配送服务类型长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送服务类型")
  private String shipServiceLevel;

  @Size(max = 5000, message = "标题长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "标题")
  private String productName;

  @Size(max = 50, message = "MSKU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "MSKU")
  private String msku;

  @Size(max = 50, message = "ASIN长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "ASIN")
  private String asin;

  @Size(max = 50, message = "该商品在订单内的当前状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "该商品在订单内的当前状态")
  private String itemStatus;

  @Size(max = 50, message = "此商品的购买数量长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "此商品的购买数量")
  private String quantity;

  @Size(max = 50, message = "币种长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "币种")
  private String currency;

  @ExcelProperty(value = "买家为商品支付的金额")
  private java.math.BigDecimal itemPrice;

  @ExcelProperty(value = "买家为商品税支付的金额")
  private java.math.BigDecimal itemTax;

  @ExcelProperty(value = "买家支付的运费金额")
  private java.math.BigDecimal shippingPrice;

  @ExcelProperty(value = "买家为运费税支付的金额")
  private java.math.BigDecimal shippingTax;

  @ExcelProperty(value = "买家为礼品包装支付的金额")
  private java.math.BigDecimal giftWrapPrice;

  @ExcelProperty(value = "买家为礼品包装税支付的金额")
  private java.math.BigDecimal giftWrapTax;

  @Size(max = 50, message = "应用于订单商品的所有促销折扣的总和长度不能超过20")
  @ExcelProperty(value = "应用于订单商品的所有促销折扣的总和")
  private java.math.BigDecimal itemPromotionDiscount;

  @Size(max = 50, message = "应用于配送的促销折扣长度不能超过20")
  @ExcelProperty(value = "应用于配送的促销折扣")
  private java.math.BigDecimal shipPromotionDiscount;

  @Size(max = 50, message = "配送城市长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送城市")
  private String shipCity;

  @Size(max = 50, message = "配送状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送状态")
  private String shipState;

  @Size(max = 50, message = "邮政编码长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "邮政编码")
  private String shipPostalCode;

  @Size(max = 50, message = "配送国家长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送国家")
  private String shipCountry;

  @Size(
    max = 50,
    message = "应用于此订单商品的所有商品促销的列表长度不能超过20"
  )
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "应用于此订单商品的所有商品促销的列表")
  private String promotionIds;

  @Size(max = 50, message = "是否商务订单长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否商务订单")
  private String isBusinessOrder;

  @Size(max = 50, message = "采购订单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "采购订单号")
  private String purchaseOrderNumber;

  @Size(max = 50, message = "制定价格长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "制定价格")
  private String priceDesignation;

  @Size(max = 50, message = "是否要签收长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否要签收")
  private String signatureConfirmationRecommended;

  @ExcelProperty(value = "店铺id")
  private Long sid;

  @ExcelProperty(value = "国家")
  private Long country;

  @Size(max = 50, message = "统计维度长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "统计维度")
  private String dimension;

  @Size(max = 50, message = "父ASIN长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "父ASIN")
  private String parentAsin;

  @Size(max = 50, message = "sku长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "sku")
  private String productSku;

  @Size(max = 50, message = "款名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "款名")
  private String spuName;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "产品类型")
  private String type;
}
